/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dao;

import java.sql.SQLException;
import java.util.ArrayList;
import modelo.InstituicaoEspecializacao;
import util.Conexao;
import util.Dao;

/**
 *
 * @author bruno
 */
public class InstituicaoEspecializacaoDao extends Dao<InstituicaoEspecializacao> {

    public InstituicaoEspecializacaoDao() {
        super(new Conexao("Aurea", "sa", "sa", Conexao.sqlServerDriver));
    }

    @Override
    protected InstituicaoEspecializacao novoModelo() {
        return new InstituicaoEspecializacao();
    }

    @Override
    public boolean gravar(InstituicaoEspecializacao modelo) {
        return gravarModelo("INSERT INTO tbInstituicaoEspecializacao (fkInstituicaoAcademica,fkEspecializacao)"
                + "VALUES(?,?)", modelo);
    }

    @Override
    protected void definirParametrosGravar() throws SQLException {
        conexao.getStatement().setInt(1, modelo.getInstituicaoAcademica().getId());
        conexao.getStatement().setInt(2, modelo.getEspecializacao().getId());
    }

    @Override
    public InstituicaoEspecializacao ler(int id) {
        return lerModelo("SELECT * FROM tbIntituicaoEspecializacao where idIntituicaoEspecializacao=?", id);
    }

    @Override
    protected void definirParametrosLer() throws SQLException {
        modelo.setInstituicaoAcademica(new InstituicaoAcademicaDao().ler(conexao.getResultSet().getInt("fkInstituicaoAcademica")));
        modelo.setEspecializacao(new EspecializacaoDao().ler(conexao.getResultSet().getInt("fkEspecializacao")));
    }

    @Override
    public ArrayList<InstituicaoEspecializacao> lerTodos() {
        return lerTodos("SELECT * FROM tbIntituicaoEspecializacao");
    }

    //metodo extra pra identificar o id
    public int getIdInstituicaoCurso(int especializacao, int instituicao) {
        for (InstituicaoEspecializacao ie : lerTodos()) {
            if (especializacao == ie.getEspecializacao().getId() && instituicao == ie.getInstituicaoAcademica().getId()) {
                return ie.getId();
            }
        }
        return 0;
    }
}
